//
//  StrategyModelDataSourceProtocol.swift
//  travelMapMvvm
//
//  Created by green on 15/8/25.
//  Copyright (c) 2015年 travelMapMvvm. All rights reserved.
//

import ReactiveCocoa

/**
 * 攻略数据操作
 */
public protocol StrategyModelDataSourceProtocol {
    
    /**
     系统推荐攻略
     
     - parameter pageIndex:          页码
     - parameter pageSize:           记录数/每页
     - parameter sortCode:           排序code
     - parameter strategyTypeCode:   攻略类型code
     - parameter strategyThemeCodes: 攻略主题code数组
     - parameter monthCodes:         月份code数组
     
     - returns: 系统推荐攻略
     */
    func queryStrategyListBySystem(pageIndex:Int,pageSize:Int,sortCode:String?,strategyTypeCode:String?,strategyThemeCodes:[String]?,monthCodes:[String]?) -> RACSignal
    
    /**
     关键字攻略
     
     - parameter pageIndex: 页码
     - parameter pageSize:  记录数/每页
     - parameter sortCode:  排序code
     - parameter keyword:   关键字
     
     - returns: 关键字攻略
     */
    func queryStrategyListByKeyword(pageIndex:Int,pageSize:Int,sortCode:String?,keyword:String) -> RACSignal
    
    /**
     已收藏的攻略
     
     - parameter pageIndex: 页码
     - parameter pageSize:  记录数/每页
     - parameter sortCode:  排序code
     - parameter userId:    用户ID
     
     - returns: 已收藏的攻略
     */
    func queryStrategyListByUserId(pageIndex:Int,pageSize:Int,sortCode:String?,userId:Int) -> RACSignal
    
    /**
     收藏攻略/取消收藏
     
     - parameter strategyId: 攻略ID
     - parameter userId:     用户ID
     
     - returns:
     */
    func collectStrategy(strategyId:String,userId:Int, isFavorite: Bool) -> RACSignal
    
    /**
     喜欢攻略/取消喜欢
     
     - parameter strategyId: 攻略ID
     - parameter userId:     用户ID
     
     - returns:
     */
    func likeStrategy(strategyId:String,userId:Int, isLike: Bool) -> RACSignal
}